﻿namespace CommonModel.Model
{
    public class DataTypeDll
    {
        public enum DataType
        {
            /**
             * bit: 字节中的位; <br/>
             * byte: 当字节, 作为整型时为无符号短整型, 取值: 0 - 255; <br/>
             * byteref: 反转字节, 即高4位在后, 低4位在前;<br/>
             * unit16: 短整型, 即高4位在前, 低4位在后;<br/>
             * unit16ref: 即高位在后, 低位在前;<br/>
             * char: 有符号字符, 作为整数时取值 -127 ~ 128; <br/>
             * uchar: 无符号字符, 作为整数时取值 0~255; <br/>
             * int: 整型; <br/>
             * long: 长整型; <br/>
             * float: 浮点型; <br/>
             * double: 双精度浮点型; <br/>
             * struct: 结构体; <br/>
             */

            /**
             * 1 位 或 1 字节
             */
            BIT,
            BITARRAY,
            BYTE,
            CHAR,
            UCHAR,
            BOOL,
            ENUM,
            UINT8,
            /**
             * 2 字节
             */
            UINT16,
            UINT16REF,
            SHORT,
            SHORTREF,
            /**
             *   特殊类型
             */
            BITOP,//目前未用
            BYTEOP,//目前未用
            USHORTOP,//目前未用
            SINGLEOP,//目前未用
            SCHEDULE,//目前未用
            AUTOMSGCFG,
            CONTREAD,
            MAC,
            MultipathData,//多径数据
            /**
             * 4 字节
             */
            INT,
            INTREF,
            UINT,
            UINTREF,
            IPV4_4,
            IPV4,
            FLOAT,
            UINT32,
            UINT_IP,
            UINT32REF,
            FLOATREF,
            /**
             * 8 字节 
             */
            LONG,
            LONGREF,
            DOUBLE,
            DOUBLEREF,
            /**
             * n (n>8) 字节
             */
            STRUCT,
            STRUCTLOOP,
            STRUCTLIST,
            STRING,
            HEXSTR,
            HEXSTRREF,
            BITARRAYLOOP,
            DATE,
            DATESHORT,
            UNKOWN
            
        }


        private string type;

        DataTypeDll(string _type)
        {
            this.type = _type;
        }


        public override string ToString()
        {
            return this.type;
        }
    }
    
}
